Devices are known, such as laptop computers, desktop computers, cell phones, cable set top boxes, printers and other devices, that employ graphics processing circuitry, such as a graphics processor and another processor, such as a CPU. The graphics processing circuitry uses portions of local memory such as a frame buffer to store surfaces (e.g., texture buffers, vertex buffers, z buffers etc) in the local memory. For example, frame buffers on-chip with the graphics processing circuitry or on any common substrates, such as a printed circuit board or other substrate, are typically coupled via a local bus. The other processor uses the system memory as has portions thereof referred to as non-local memory that is page locked system memory. The system memory is typically located off-card or off-chip from the graphics processing circuitry and is coupled to the graphics processor chip through a slower bus than the bus that couples the local memory to the graphics processing circuitry. A local memory therefore is memory that is in communication with the graphics processing circuitry through a local bus that has a bandwidth higher than the bandwidth of the bus coupled to the non-local system memory.
As more intensive graphics processing applications such as games or other applications become available, the frame buffer memory may not be adequate in size to accommodate all processing by the graphics processing circuitry. Accordingly, systems are known that attempt to provide an optimum amount of memory that is allocated for balancing graphics and CPU performance that may attempt to dynamically respond to system requirements and application demands by allocating display, texturing and buffer memory after an operating system is booted. As such, additional allocation of system memory (non-local memory areas) may be provided to a 3D application and when the 3D application is finished, the allocated memory is unallocated so that the system memory can be returned to the operating system. As such, a preallocated amount of memory may be taken from main system memory to be dedicated for 3D graphics usage. However, it is believed that such systems may not provide adequate memory allocation when, for example, a memory intensive application is running since the memory is preallocated and after the allocation size has been met, the application may have difficulty running due to an inadequate memory size allocation. As such, these two tier graphics memory allocation systems that utilize local memory and non-local memory areas could be oversubscribed and a graphics application could fail to run properly.
Accordingly, a need exists that overcomes one or more of the above problems.